package br.com.ufpr.sgp.util.session;

import org.apache.wicket.Session;
import org.apache.wicket.protocol.http.WebSession;
import org.apache.wicket.request.Request;

import br.com.sebrae.pr.sgp.entities.Usuario;


/**
 * Classe mantida na sessão customizada.
 * 
 * @author Willian Tanaka
 */
public class CustomSession extends WebSession {
    private static final long serialVersionUID = 2775066529391335860L;

    private Usuario usuario;

    public CustomSession(final Request request) {
        super(request);
    }

    public static CustomSession get() {
        return (CustomSession) WebSession.get();
    }

    public boolean isLogado() {
        return this.usuario != null && this.usuario.getId() != null && this.usuario.getId().longValue() > 0;
    }

    public Usuario getUsuario() {
        if (this.usuario == null) {
            this.usuario = new Usuario();
        }
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public boolean isMesmoUsuario(final Usuario usu) {
        return usu != null && isMesmoUsuario(usu.getId());
    }

    public boolean isMesmoUsuario(final Long codUsu) {
        return getUsuario().getId() != null && codUsu != null && getUsuario().getId().longValue() == codUsu.longValue();
    }
}
